洗白“黑科技”深度学习

您所在的位置:网站首页 neural turing machine 洗白“黑科技”深度学习

洗白“黑科技”深度学习

2022-03-27 16:25| 来源: 网络整理| 查看: 265

原标题:洗白“黑科技”深度学习

2016年3月,由DeepMind研发的AlphaGo以4:1的战绩完胜世界围棋冠军李世乭,拉开人工智能疯狂席卷IT圈的序幕。5月,Tesla在开启Autopilot辅助驾驶模式后出现首例致死事故,将人工智能推上了风口浪尖。霍金、比尔盖茨、埃隆马斯克等科技大咖相继发言,讨论人工智能是否会对人类未来发展不利,OpenAI应运而生。10月,HBO电视剧《西部世界》的上映,再一次引爆大众对于人工智能的关注。由于媒体的夸张宣传,人们甚至觉得《终结者》中的世界就要到来。

伴随着这一波人工智能浪潮崛起的,是一种被称为“深度学习”的技术。不论是AlphaGo、自动驾驶,抑或是其他近期的人工智能突破,我们都能在其背后看到深度学习的影子。深度学习就像是人类打开的潘多拉盒子,放出了黑科技,席卷整个科技行业。

从Gartner2016年新技术发展曲线报告中可以看出,和人工智能相关的技术,要么处于泡沫期的顶峰,要么处于正在走向泡沫期的路上。为什么人工智能会突然爆发?它会不会只是媒体吹出来的一个泡沫?作为人工智能再次兴起的核心技术突破,深度学习到底是什么“黑科技”?

从信息时代到智能时代

近20年间,互联网经历了一场“大跃进”。根据IDC做的统计:在2006年,全世界创造的数据量约为161 EB,预计每18个月这个数字会翻一番,在2010年达到988 EB(

(注:1024MB为1GB,1024GB为1TB,1024TB为1PB,1024PB为1EB,1024EB为1ZB))。而事实上,根据IDC后来的报告,2010年达到的数字是1227EB。最近的一次IDC互联网报告是在2014年,其中提到2013年全世界产生的数据是4.4ZB,到2020年,这一数字将达到44ZB。

物联网的发展正在加速这一过程。2013年,全世界接入互联网的设备将近200亿,到2020年,这一数字将达到300亿。而全世界所有的“物体”总数,大概是2000亿。这些设备通过其内嵌的传感器监控并收集数据,并上报到云计算中心。

云计算、大数据和物联网的窘境

我们正处于“数字化一切”的时代。人们的所有行为,都将以某种数字化手段转换成数据并保存下来。每到新年,各大网站、App就会给用户推送上一年的回顾报告,比如支付宝会告诉用户在过去一年里花了多少钱、在淘宝上买了多少东西、去什么地方吃过饭、花费金额超过了百分之多少的小伙伴;航旅纵横会告诉用户去年做了多少次飞机、总飞行里程是多少、去的最多的城市是哪里;同样的,最后让用户知道他的行程超过了多少小伙伴。这些报告看起来非常酷炫,又冠以“大数据”之名,让用户以为是多么了不起的技术。然而,我们实际上在只是做一件事:数(shǔ)数(shù)。

实际上,企业对于数据的使用和分析,并不比我们每年收到的年度报告更复杂。已经有30多年历史的商业智能(Business Intelligence),看起来非常酷炫,其本质依然是数数,并把数出来的结果画成图给管理者看。只是在不同的行业、场景下,同样的数字和图表会有不同的名字。即使是最近几年炙手可热的大数据处理技术,也不过是可以数更多的数,并且数的更快一些而已。

比如我们每天都在使用的搜索引擎。在自然语言处理领域,有一种非常流行的算法模型,叫做词袋模型(Bag of Words Model),即把一段文字看成一袋水果,这个模型就是要算出这袋水果里,有几个苹果、几个香蕉和几个梨。搜索引擎会把这些数字记下来,如果你想要苹果,它就会把有苹果的这些袋子给你。

当我们在网上买东西或是看电影时,网站会推荐一些可能符合我们偏好的商品或是电影,这个推荐有时候还挺准。事实上,这背后的算法,是在数你喜欢的电影和其他人喜欢的电影有多少个是一样的,如果你们同时喜欢的电影超过一定个数,就把其他人喜欢、但你还没看过的电影推荐给你。

搜索引擎和推荐系统在实际生产环境中还要做很多额外的工作,但是从本质上来说,它们都是在数数。那么,数数有什么问题么? 有。

数字的发明,让我们的祖先可以用简便的记法记录下物体的个数。比如有一个放牛娃,家里最初只有3头牛,他可以记住每一头牛的样子,每天回到家,扫一眼牛棚,就知道家里的牛丢没丢。后来,因为家里经营的好,放牛娃的牛有100头之多,随之而来的是无法记清每头牛的烦恼。如果没有发明数字,他可能要把每一只牛照着模样刻在石壁上,每天拉着一头头的牛到石壁边去对照,看有没有丢牛。当有了数字,放牛娃只需要记下“100”这个数字,再画一头牛就够了,以后每天数一下牛群里面牛的数量,再看看石壁上的数字是否一样。

数数,让放牛娃的工作变得简单,他不用把每一头牛的样子都刻在石壁上,减轻了工作量。可是这种办法并非万无一失,有一天,附近一个游手好闲的小混混从别处找来一头病牛,混到了放牛娃的牛群之中,同时又牵走了一头壮牛。放牛娃在一天结束、清点自己的牛群时,发现还是100头牛,不多不少,就心满意足的回家睡觉了。然而他却不知道,他的一头壮牛被小混混用病牛换走了。

对于主要以数数方式来使用数据的企业,同样面临着无法关注数据细节的问题。当数据量比较小的时候,可以通过人工查阅数据。而到了大数据时代,几百TB甚至上PB的数据在分析师或者老板的报告中,就只是几个数字结论而已。在数数的过程中,数据中存在的信息也随之被丢弃,留下的那几个数字所能代表的信息价值,不抵其真实价值之万一。过去十年,许多公司花了大价钱,用上了物联网和云计算,收集了大量的数据,但是到头来却发现得到的收益并没有想象中那么多。

深度学习的困境

我们所知的深度学习,本质上应该叫做“基于深度神经网络的机器学习”。为什么用了”深度学习”这个名字,而不是深度神经网络呢?其中一个原因是,“神经网络”这个词是一个禁忌。

神经网络算法的提出可以追溯到20世纪40年代。这一算法起源于生物学中对于动物大脑神经元的研究,因此早期也被称为人工神经网络(Artificial Neural Network)。最初的神经网络是逻辑电路搭建,到了60年代,由于计算能力不足,无法构建大规模神经网络,而小规模神经网络的表现又差强人意。随着其他机器学习方法的提出,很多科研人员开始转向其他方向,人工神经网络的研究陷入了停滞。

图1 典型神经元的结构

20世纪80年代,随着通用计算机的出现,人工神经网络的研究经历了一波复苏。在这个阶段,反向传播(Back Propagation)算法逐渐成熟。直到今天,反向传播算法都是训练神经网络的最主要方法。然而,依然受限于当时的硬件条件,神经网络的规模依然不大。同时,以支持向量机为代表的基于核方法的机器学习技术,表现出了不俗的能力,因此,大量科研人员再一次放弃了神经网络。

然而并不是所有的科学家都放弃了神经网络。在那些留守的科学家中,有一位刚刚拿到人工智能学位不久的年轻人,他曾在剑桥大学国王学院拿到实验物理学的学士学位,因为对认知科学抱有浓厚的兴趣,因此选择专攻人工智能。他坚信“既然大脑能够工作,神经网络算法也一定能工作。大脑不可能是被编程出来的。”当他的研究成果并不如预期时,他总是对质疑他的人回应:“再给我6个月,到时候我会证明它是可以工作的。”当几个6个月过去,神经网络的效果依然不好,他会说:“再给我5年,一定能行。”又是好几个5年过去,神经网络真的成了。这个人就是Geoffrey Hinton,深度学习之父。

神经网络在最初的几十年内都没有表现出过人的性能,主要面临着两个困难。首先是计算性能不足。实际上,在90年代,Hinton以及他的学生就已经在试验和后来深度神经网络类似的结构,其中就有大名鼎鼎的Yann LeCunn,他所提出的神经网络结构就是现在的“LeNet”。但是,增加神经网络的深度,就会让神经网络的训练速度变慢。在那个内存不过几十MB,GPU还没有出现的年代,要训练一个小规模的深度神经网络模型,需要花上数周甚至数月。

其次是训练数据不够多。在机器学习领域流传着一个传说,叫做“维度诅咒(Curse of Dimensionality)”,随着特征维度的增加,算法的搜索空间急剧变大,要在这样的特征空间中寻找适合的模型,需要大量的训练数据。神经网络要解决的问题,通常具有成千上万维的特征,我们假设有1000维特征,每一维特征有100个候选值,那么这个特征空间就是100的1000次方,可以想象,要在如此大的特征中寻找一个模型,需要多少数据,而这个特征空间规模不过是深度学习问题中比较小的。幸好我们所在的这个世界,可以通过一个非常有用的先验假设进行简化:我们这个世界的事物都是通过更小的事物组合而成的。我们知道,所有的物体都是由分子构成,分子由原子构成,原子由质子、中子和电子构成,等等。不仅实际的物体满足这一先验假设,抽象的概念也一样如此。因此深度神经网络利用了这一假设,通过将网络层数加深,每一层神经元都是前面一层神经元输出的组合,通过这样的假设,将整个搜索空间大大减小。然而,训练深度神经网络依然需要大量的数据,才能得到一个比较好的结果。

图2 深度神经网络构建层级化特征

取深度学习之长,补传统软件之短

来到21世纪,正如我们前面所说,在21世纪的十几年间,我们的数据量和计算能力都增长了不少,这为神经网络证明其能力提供了条件。事实上,在Hinton的带领下,神经网络在2000年之后逐渐开始在一些比较小众的领域获得成功。而真正对学术界产生震动的,是2012年,Hinton实验室的学生Alex Krizhevsky用基于深度神经网络的方法,在ILSVRC(ImageNet Large Scale Visual Recognition Challenge)图像识别挑战赛中一战成名,其网络结构也被人们称为AlexNet。在那之前,图像识别领域已经被基于支持向量机的算法霸占多年,而AlexNet不仅打败支持向量机,而且将错误率降低了将近一半。自此之后,图像识别算法的冠军就一直是深度学习算法。

图3 基于深度学习的算法,让图像识别精度在过去几年大幅度提升

除了在图像识别领域获得巨大成功,在短短的几年之内,在各种场景下,基于深度神经网络的算法都横扫其他机器学习算法。包括语音识别、自然语言处理、搜索引擎、甚至自动控制系统。DeepMind的Alex Graves团队在2014年的一篇论文中提出的神经图灵机(Neural Turing Machine)结构,以及后来在2016年提出的DNC(Deep Neural Computer)结构,甚至可以成功学习简单的算法,这不禁让我开始遐想有一天,计算机可以自己给自己编程。

深度学习给企业带来的影响 深度学习的端到端架构,降低了企业引入深度学习的成本

相比其他经典的机器学习算法来说,深度学习需要人工干预的比例小很多。比如,在经典机器学习中,特征工程占用了科学家们开发算法的大部分精力,对于某些问题,比如图像识别、语音识别,科学家们花了几十年时间来寻找性能更好的特征。深度学习改变了这一情况。深度学习接收原始数据,在神经网络的训练过程中,寻找最适合的特征。事实证明,机器自己找到的特征,比人类科学家用几十年找到的特征性能更好。正是由于深度学习的这一特点,深度学习的一个明显趋势,是端到端的解决问题。

比如下图所示的语音识别。经典语音识别需要对原始数据提取特征(比如梅尔倒谱系数),将提取到的特征建立时间序列模型(比如隐式马尔科夫模型),得到声学模型,然后根据发声词典,将输入信号映射为一些音节,最后,根据预先定义好的语言模型,将音节转换为有意义的文字。这其中,特征提取、时间序列建模、发声词典等都需要人工预先定义好,对于不同的语种,比如中文和英文,还要使用不同的模型。

图4 端到端的深度学习越来越流行

在深度学习流行起来的初期,语音识别流程中的特征提取以及时间序列建模等,都用深度神经网来替代了。到了最近几年,科学家发现,对于语音识别这样的问题,甚至流水线都是多余的,直接将原始数据接入到神经网络中,就能输出我们期望的文本,这样的结构要比人工设计流程得到的结果更好。

这种端到端的深度学习,在其他领域也被验证是可行的。比如自动驾驶技术,在MIT的自动驾驶项目中,就是用端到端的深度强化学习技术,输入是路况的所有信息,输出就是对汽车的指令,比如加速、刹车、方向盘角度等等。

深度学习的端到端架构,降低了企业引入深度学习的成本。过去,企业要引入机器学习,需要招聘一个科学家团队,同时还需要一个开发团队,将科学家所设计的算法模型翻译成生产环境代码。这样的开发模式不仅成本高,响应速度也非常慢。而深度学习的端到端架构,对于科学家的要求降低了很多,而且,由于不需要通过特征工程来寻找特征,开发周期也大大缩短。对于很多规模不大、但希望朝智能化演进的企业来说,先尝试引入深度学习是个不错的选择。

智能时代的产品研发将由算法驱动

在传统的软件开发中,用户的交互方式是确定的,业务流程也是确定的;当我们尝试将人工智能技术融入到产品中,需要面对大量的不确定性。

首先是和用户的交互方式将发生巨大变化。过去,我们通过按钮、表单等控件来确保用户是按照产品设计师的思路来使用软件的。随着深度学习在图像识别、语音识别、文本识别等方面的快速发展,未来,我们的软件在用户的交互过程中,将更多的使用自然语言、语音、手势、甚至是意识。具备触屏功能的智能手机的出现,掀起了一波用户体验升级的浪潮,所有应用开发者都在寻找在触屏应用中更自然的交互方式。而这一次,用户交互方式的升级将比触屏带来的影响更加深远。Amazon在这方面做出了开创性的尝试,其智能音箱Echo在设计之初就特意去掉了屏幕,让语音变成唯一的交互渠道。Facebook Messenger在发布了聊天机器人的平台之后,同样也给出了设计指导,开发者将以一种全新的方式去思考,软件应该如何与用户更好的沟通。

其次是企业的业务决策会越来越多的依赖人工智能。过去,企业要基于数据进行决策,需要搭建数据仓库,开发ETL程序,制作报表,等待分析师从各种各样的报表中找到有价值的信息,最后做出业务改进的决策。现在,我们有了深度学习这把强大的锤子,可以让我们对数据有更加深刻的洞察力;同时,实时流式大数据架构让我们可以更快速地做出反馈。企业如果可以利用好这两大利器,将释放出更大的潜力。

图5 算法驱动的产品架构

IT软件的运维也将迎来新的革命。软件系统越来越复杂、规模越来越大,对于运维人员的挑战就越来越高。在IT行业的早期,运维更多是修复性工作。后来,为了减少系统修复带来的损失,运维工作开始强调预防性,即根据历史维护记录,找到系统故障的规律,提前进行修复。然而,据统计,有规律的故障只占所有故障中的18%。因此,我们需要更好的识别并预测故障的能力,即预测性运维。深度学习在自动学习特征方面的优势,注定其在预测性运维领域也会发挥很大的作用。

深度学习不是终结者

深度学习在这几年越来越流行,尤其是在AlphaGo击败人类棋手之后,一些媒体甚至开始营造人工智能可能会取代人类的紧张氛围。然而,就目前的研究成果来看,想要发展出科幻电影中具备独立思考能力、甚至可以和人类谈恋爱的人工智能,还有很长一段距离。且不说情感、人格这类形而上的概念,尚未有严格的科学定义,更不用提人工智能能否具备这些属性。单从目前人类的工作是否会被人工智能所替代来看,至少当前的深度学习还有很多局限性,要想打破局限,让深度学习具有更大的作用,还有很多挑战等待解决。

挑战1:多功能神经网络

尽管深度学习已经让神经网络具备了很大的灵活性,然而深度学习目前还只能做到一个神经网络解决一个问题。比如训练一个神经网络要么只能识别图片,要么只能识别语音,不能同时识别。比如,我们可以给一个神经网络看一张图片,神经网络可以识别到图片中是猫还是狗;我们也可以给另一个神经网络听一段声音,这个神经网络可以识别出是声音中是猫还是狗的叫声;但是,现在还没有一个神经网络,既能通过视觉识别物体,还能通过听觉识别物体。尽管借助多任务学习(Multi-task learning)技术,神经网络可以在识别图片类别的同时,识别轮廓、姿态、阴影、文字等等相关的内容,相比我们人类多才多艺的大脑,现在的深度神经网络可以说是非常低能。

目前如果需要一个应用支持不同的能力,必须组合使用多个神经网络,这不仅对于计算资源是巨大的消耗,不同神经网络之间也难以形成有效的互动,比如图片中的狗、声音中的狗和一段文字中出现的狗,在各自的神经网络中都有不同的表示方式。而对于人类来说,这些其实都是同一个概念。

如何让神经网络能够同时实现多个目标,目前科学家们也都还没有答案,不过从人类大脑得到的启示是,通过某种方式,将负责不同功能的神经网络连接起来,组成更大的神经网络,也许可以解决这个问题。Google在ICLR 2017上的一篇论文,通过一个系数门矩阵将多个子网络连接起来,是在这个方向上的一个有趣尝试。

挑战2:终极算法

Pedro Domingos教授在《The Master Algorithm》一书中回顾了机器学习的5大流派:符号主义、连接主义、进化主义、贝叶斯主义、分析主义。这5类机器学习算法并没有绝对的优劣,不同的算法适用于不同的场景和问题。比如以神经网络为主的连接主义算法,对于视觉、听觉这类感知问题,具有更好的效果,但是却不擅长逻辑推理。而逻辑推理刚好是符号主义算法所擅长的。书中提出了一种终极算法,能够结合这五种主流机器学习,可以适用于更大范围的问题域。

深度学习正是连接主义发展而来,不过深度学习提供了可扩展性非常强的框架,以深度学习为基础,很有希望将其他几类机器学习算法融入进来。OpenAI在进行深度强化学习的实验过程中发现,使用进化主义的遗传算法替代经典的反向传播(BP)算法,模型可以更快的收敛,性能也更好;Google基于TensorFlow框架开发的概率编程工具库Edward,证明了概率图和神经网络可以无缝的结合在一起。

从目前的趋势看来,终极算法非常有希望。不过,事情不会总是这么顺利。当年物理学家们希望寻找大统一理论来结合自然界四种基本力,电磁力、强核力、弱核力很快就结合到一个模型中,然而最后引力却怎么都找不到结合的办法。当我们找到终极算法的时候,通用人工智能(Artificial General Intelligence)就离我们不远了。

挑战3:更少的人工干预

深度学习让机器学习不再依赖于科学家寻找特征,但调试深度神经网络依然需要很多人工的工作,其中最主要的就是调参。这里所说的调参,不是调节神经网络的每个神经元的参数,而是指调试超参数。超参数是用来控制神经网络的描述性参数,比如,神经网络的层数、每一层的神经元个数、学习率(Learning Rate)的大小、训练时间的长短等等。这些参数的微小差异,会给最终模型带来巨大的性能差异,而这部分工作大多需要靠经验完成,很难总结出有效的最佳实践。

然而这一状况在未来将会有所改善。既然神经网络可以用于学习参数,就应该可以学习超参数。DeepMind提出的Learning to Learn算法,使用神经网络来学习和调整学习率,可以让神经网络更快的收敛到理想的精度。正所谓,授人以鱼不如授人以渔。

结语

深度学习的火爆,吸引了越来越多的计算机科学家投身到这一领域。如果以目前学术成果的发展速度来预测,也许不超过10年,上述深度学习的挑战就会被解决。与其杞人忧天的担心人工智能会毁灭人类,不如提前布局,做好准备,迎接智能时代的到来。智能时代的IT系统,将是”具备自主性的IT系统,能够根据人类制定的目标,针对复杂业务变化,做出认为的最优选择。“如果深度学习的几大挑战能够在几年之内被解决,将大大加快未来IT系统实现的脚步。

更多精彩商业洞见,请关注微信公众号:ThoughtWorks商业洞见返回搜狐,查看更多

责任编辑:



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3